home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / qbbs / pvthr305.zip / PRIVATE.DOC < prev    next >
Text File  |  1992-10-31  |  18KB  |  565 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                           PRIVATE HOURS v3.05
  23.                            (C) 1991,92 PKsoft
  24.  
  25.                          Written by Peter Tan
  26.                        The Elite Bulletin Board
  27.                           FidoNet 6:600/403.0
  28.                            VNet 45:620/101.0
  29.                           DoorNet 76:8000/101
  30.                            PODSNet 93:9051/2
  31.  
  32.              FOSSIL I/O routines (C) 1990, 1991 Philip Teo
  33.                               CommCen BBS
  34.                            FidoNet 6:600/61.0
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59. ┌──────────┐
  60. │ Warranty │
  61. └──────────┘
  62.  
  63.         This program  is provided  "as is".  No warranty  of any kind is
  64.         made, nor  implied. This  program is  only guranteed  to take up
  65.         disk  space,  nothing  more.  If  you  break  anything with this
  66.         program, you get to keep all the parts.
  67.  
  68. ┌───────────────────┐
  69. │ Special Thanks    │
  70. │ and other credits │
  71. └───────────────────┘
  72.  
  73.         I'd  like  to  thank  the  following  people,  without whom this
  74.         program  would  not  have  materialised.  Here  they  are, in no
  75.         particular order:
  76.  
  77.         - Charles "Bartman" Cheong (Shadow BBS @ FidoNet 6:600/307.0)
  78.                 for taking the pains and trouble to teach me Turbo
  79.                 Pascal
  80.  
  81.         - Philip Teo (CommCen BBS @ FidoNet 6:600/61.0)
  82.                 for consenting to let me have his FOSSIL I/O source
  83.                 routines
  84.  
  85.         - Kelvin Goh (The HOST Connection @ FidoNet 6:600/400.0)
  86.                 for letting this program run on his system, and risk
  87.                 having his RA configuration files and user files grunged
  88.                 by a largely untested software
  89.  
  90.         - Bob "I can write a better FOSSIL but I won't" Prow
  91.                 for his weird and wonderful solutions to seemingly
  92.                 difficult problems
  93.  
  94.         - Andrew Milner for writing RemoteAccess.
  95.  
  96.  
  97.         Thanks guys! Couldn't have done it without ya!
  98.  
  99.  
  100. ┌──────────────┐
  101. │ Requirements │
  102. └──────────────┘
  103.  
  104.         φ  IBM PC/XT/AT/386 or compatible
  105.         φ  At least 256K
  106.         φ  A Front-End mailer software, such as FrontDoor
  107.         φ  RemoteAccess 1.xx software
  108.         φ  A Revision Level 5 FOSSIL driver, such as X00 or BNU
  109.         φ  Lots of luck! ;-)
  110.  
  111.  
  112.  
  113.             PRIVATE HOURS v3.05 Documentation       Page 1
  114.  
  115. ┌──────────┐
  116. │ Features │
  117. └──────────┘
  118.         ■ Full security checks against User names and passwords
  119.         ■ Interfaces neatly with RemoteAccess files
  120.         ■ Logs activities to RA's logfile
  121.           (Now in OPUS/FD format!)
  122.         ■ Fully FOSSIL driven
  123.         ■ Graceful exits from carrier drops and inactivity timeouts
  124.         ■ Not UserLevel or Flag dependent
  125.         ■ First (?) 3rd party program to use the GROUP field
  126.         ■ 'Twit' key to kick out unwelcomed people
  127.         ■ Built-in DOS-Shell
  128.         ■ Local "testing" mode
  129.         ■ Four separate time slots for private hours
  130.         ■ Checks Voice Phone numbers   [Registered only]
  131.         ■ Checks Birth Date            [Registered only]
  132.         ■ Displays LOGO.ASC if present [Registered only]
  133.  
  134. ┌─────────┐
  135. │ License │
  136. └─────────┘
  137.  
  138.         Private Hours v3.05 is distributed under the shareware  concept.
  139. In a non-commercial environment, you  are granted a license to  use this
  140. program for  evaluation until  such time  as you  think is  a reasonable
  141. period. After this period, you  are encouraged to register this  program
  142. as  an  incentive  for  the  author  (Me!)  to keep working on 3rd party
  143. enhancements for RemoteAccess bulletin board software.
  144.  
  145.         In a commercial environment,  you are granted a  limited license
  146. to use  this program  for a  period of  30 days,  after which you *MUST*
  147. register this program, or cease using it.
  148.  
  149.         Please see the accompanying REGISTER.DOC for more details.
  150.  
  151. ┌─────────────┐
  152. │ Description │
  153. └─────────────┘
  154.  
  155.         This program was primarily born  out of need. I have  many users
  156. whom I  think are  a deserving  bunch of  nice people.  Yet, they  often
  157. complain (good-naturedly of course) that my BBS is one of the hardest to
  158. logon. One of them  suggested I make a  day where I allow  some users to
  159. logon but not the rest. Thus was the idea for this program born.
  160.  
  161.         Of course, I didn't make one whole day for them to logon, but  I
  162. did the  next best  thing. I  made a  time-slot which  allows only THESE
  163. users to logon everyday.
  164.  
  165.         You can  use this  program in  other ways  too. As  one Sysop in
  166. RA_SUPPORT asked recently, whether he can let PAYING users logon  during
  167. certain hours, and boot off those  that do not pay. This program  can do
  168. what he wanted.  It's better than  copying configuration files  all over
  169. the place, don't you think? ;-)
  170.  
  171.  
  172.             PRIVATE HOURS v3.05 Documentation       Page 2
  173.  
  174. ┌──────────────┐
  175. │ Installation │
  176. └──────────────┘
  177.  
  178.      Use  an  unarchiving   utility  such  as   PKUNZIP  to  unpack  the
  179. distribution file into your mailer directory.
  180.  
  181.      Run the setup program, PVTCFG.EXE. It is menu-driven, so you should
  182. not have any problems getting it to run. In any case, here is an outline
  183. of what to expect in the setups.
  184.  
  185. REGISTRATION   - This option brings you to the Registration info. When 
  186.                  you register PRIVATE HOURS, please send your name and 
  187.                  BBS name EXACTLY as it appears here!
  188.  
  189. PRIVATE HOURS START / END -
  190.  
  191.      This menu option brings  you to the screen  where there are 4  time
  192. slots. These are where you tell  PRIVATE HOURS which are the time  slots
  193. you designate as PRIVATE HOURS.
  194.  
  195.      Note  that  the  time  MUST  NOT  overlap the midnight hour, ie you
  196. cannot have a private hour time  slot from 23:59 to 00:01, for  example.
  197. The time slot MUST start and end on the SAME DAY.
  198.  
  199.      The "GRP" behind every  time slot is the  GROUP of users you  allow
  200. during that time slot. Thus, you can now allow up to 4 different  groups
  201. in 4 different time slots for your private hours.
  202.  
  203. DIRECTORIES AND PATHS - This menu option brings you to the screen where 
  204.                         you input your paths to the various files 
  205.                         required by PRIVATE HOURS for it to run. The 
  206.                         trailing backslash in directory names is 
  207.                         optional.
  208.  
  209. ERRORLEVELS  - This menu option brings you to the screen where you enter 
  210.                all the errorlevels you pass from the mailer to your BBS 
  211.                for the BBS to recognise as HUMAN CALLERS. If your 
  212.                errorlevel passed from your mailer to signify a human 
  213.                caller at 2400 is "235", then input "235" into the "2400"
  214.                field.
  215.  
  216.  
  217. BBS SPECIFICS  - This menu option brings you to the menu where you get 
  218.                  to choose what you want PRIVATE HOURS to do when 
  219.                  prompting a user. Each "X" inside the box indicates 
  220.                  that the option is active. Note that "ASK FOR VOICE 
  221.                  PHONE", "ASK FOR BIRTH DATE" and "SHOW LOGO.ASC" are 
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.             PRIVATE HOURS v3.05 Documentation       Page 3
  229.  
  230.                  registered-only functions. You can select them here, 
  231.                  but it will only take effect if you are registered.
  232.  
  233.                  "FOSSIL PORT" is the port number used by the FOSSIL for 
  234.                  communications. COM1 is "0", COM2 is "1" and so on.
  235.  
  236.                  "TIMEOUT IN MINUTES" is the number of minutes to wait 
  237.                  for the user to input something before booting him off 
  238.                  for inactivity.
  239.  
  240.                  "LOCAL LOGON ERRORLEVEL" is the errorlevel to be 
  241.                  returned if you run PRIVATE HOURS locally as a test. 
  242.  
  243.  
  244.      Next, in your RUNBBS.BAT (or equivalent) that you use to run  up your
  245. BBS, replace the line which calls your mailer with the name of  the program,
  246. like so:
  247.  
  248. ╔════════════════════╗
  249. ║ Example batch file ║
  250. ╚════════════════════╝
  251.  
  252.         :Start
  253.         @echo off
  254.         cd \fd
  255.         Fd
  256.         if errorlevel 200 goto human9600
  257.         if errorlevel 190 goto human4800
  258.         .
  259.         .
  260.  
  261.  
  262. Replace with:
  263.  
  264.         :Start
  265.         @echo off
  266.         cd \fd
  267.         PRIVATE                 <-- replace your "FD" call
  268.         if errorlevel 200 goto human9600
  269.         if errorlevel 190 goto human4800
  270.         .
  271.         .
  272.  
  273.  
  274.         The next step is  to run up your  USERED (or RACE, like  me) and
  275. choose those users that are deserving (or those that PAID) and give them
  276. all a common group number. This number *MUST* be the same one as defined
  277. in the PRIVATE.CFG file for the time slot you want.
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.             PRIVATE HOURS v3.05 Documentation       Page 4
  285.  
  286.         This program will allow users even of different levels to access
  287. the BBS during the private hours. Therefore you can have a level 10  and
  288. a  level  100  user  accessing  the  BBS  during private hours if you so
  289. wished.
  290.  
  291.         After this, you're all set to go!
  292.  
  293. ┌─────────────────────┐
  294. │ VoicePhone checking │
  295. └─────────────────────┘
  296.  
  297.         This  option  is  activated  only  if  a  registered  version is
  298. running. It acts as a second security feature in case a hacker got  hold
  299. of someone's password.
  300.  
  301.         It should be  noted that for  this to work  properly, your phone
  302. number *MUST* be formatted to USA standard of XXX-XXX-XXXX.
  303.  
  304. ┌────────────────────┐
  305. │ BirthDate checking │
  306. └────────────────────┘
  307.  
  308.      This option is activated only if a registered version is running. 
  309. It acts as a third security feature.
  310.  
  311. ┌────────────┐
  312. │ 'TWIT' Key │
  313. └────────────┘
  314.  
  315.         The 'Twit' key is ALT-H. When pressed, it will immediately  drop
  316. DTR on the user, without displaying anything. Maybe in future versions I
  317. will simulate some line noise before dropping carrier on the user ;-)
  318.  
  319. ┌───────────┐
  320. │ DOS Shell │
  321. └───────────┘
  322.  
  323.         There is a built-in DOS shell. It is there in case you may  want
  324. to do something in DOS or whatever. The key to activate this is ALT-J.
  325.  
  326.         It would come in useful if  you want to add the current  user to
  327. the list of people allowed to logon by shelling to DOS and adding him to
  328. the group there and then.
  329.  
  330.         Be sure to shell to DOS *ONLY* at the "Enter your First and Last
  331. name" prompt, when all the  RA configuration files are closed.  Do *NOT*
  332. shell when  the system  is prompting  him for  the VoicePhone number (in
  333. registered versions)  or the  password. That  is the  time when the user
  334. files are opened for reading, and shelling out and changing  information
  335. within them would most probably be hazardous to the files!
  336.  
  337.  
  338.  
  339.  
  340.             PRIVATE HOURS v3.05 Documentation       Page 5
  341.  
  342.         As a point of info,  the RA configuration files are  opened only
  343. *AFTER* the user has entered his name and the screening process  begins,
  344. and they  are closed  IMMEDIATELY upon  finding a  match, or not finding
  345. the user after searching through the files.
  346.  
  347.  
  348. ┌─────────────────────────┐
  349. │ Command-line Parameters │
  350. └─────────────────────────┘
  351.  
  352.         PRIVATE HOURS has only one command-line parameter. When run with
  353. the command-line:
  354.  
  355.         PRIVATE demo
  356.  
  357.         it will  go into  local logon  mode, bypassing  the call  to the
  358. mailer.  From  here,  you  can  test  to  see if your setup is correctly
  359. defined. I put this in because when I test the program locally, it  gets
  360. kind of boring waiting for the mailer to load up and then for me to  hit
  361. the local-logon key to test the program ;-)
  362.  
  363. ┌──────────────────────┐
  364. │ Logging to a Logfile │
  365. └──────────────────────┘
  366.  
  367.      PRIVATE HOURS will log activities to the system logfile, as defined
  368. in  the  PRIVATE.CFG.  It  now  also  logs  in  OPUS  in addition to the
  369. FrontDoor format,  thus Binkley  users will  now not  have PRIVATE HOURS
  370. giving them sore eyes from looking at the logs. ;-)
  371.  
  372.         If PRIVATE HOURS encounters any  problems, it will write to  the
  373. system logfile as well.
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.             PRIVATE HOURS v3.05 Documentation       Page 6
  397.  
  398.  
  399. ┌──────────────┐
  400. │ How it works │
  401. └──────────────┘
  402.  
  403.         Here's a rough outline of  how this program works. This  part is
  404. for information's sake only, and to satisfy any curiosity as to how this
  405. program works.
  406.  
  407.         1. PRIVATE.EXE runs up
  408.         2. PRIVATE.EXE shells out and calls the mailer
  409.         3. Upon *ANY* events (whether HUMAN callers or mail calls or
  410.            events), the mailer exits with an errorlevel
  411.         4. PRIVATE.EXE traps this value, and tests for validity of
  412.            Private Hours being enforced
  413.         5. If private hours are in effect, it will test the errorlevels
  414.            against those defined in the PRIVATE.CFG file.
  415.         6. If no match is found, PRIVATE.EXE assumes a non-human caller
  416.            and exits with the preserved errorlevel to let your batchfile
  417.            handle the rest.
  418.         7. If the errorlevel matches one of those defined in the CFG
  419.            file, and if private hours are in effect, then it goes
  420.            through the 'screening' process.
  421.         8. If Private Hours are not in effect, but the errorlevel
  422.            matches those in the CFG file, it will exit with the
  423.            preserved errorlevel.
  424.  
  425.         In any case, it's transparent to both the Sysop and the user  as
  426. to whether PRIVATE HOURS is loaded. For the sake of speed, I wrote  this
  427. program to  search usernames  against the  REAL NAME  only, and  not the
  428. handle. Any user  trying to logon  during private hours  with his handle
  429. will not be recognised.
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.             PRIVATE HOURS v3.05 Documentation       Page 7
  453.  
  454. ┌───────────────┐
  455. │ Miscellaneous │
  456. └───────────────┘
  457.  
  458.         The  only  mailer  that  has  been  tested  with this program is
  459. FrontDoor. You  use this  program with  other mailers  at your own risk!
  460. Generally any mailer that generates an errorlevel upon exit should  work
  461. with this program, but as I said earlier, there's no guarantee it  WOULD
  462. work.
  463.  
  464.         Also, PRIVATE  HOURS has  only been  tested using  the BATCHFILE
  465. calling  the  mailer  method.  It  has  *NOT*  been tested with the RA's
  466. Shell-to-mailer mode;  it should  work though,  since it  also runs  the
  467. mailer and returns an errorlevel exit.
  468.  
  469.         If you want to try  it in the Shell-to-mailer mode,  replace the
  470. "FD" with "PRIVATE.EXE".  In essence, think  of this program  as another
  471. mailer.
  472.  
  473.         PRIVATE HOURS will ALWAYS exit with Errorlevel 0 if the user is
  474. not granted access to the system, or is a new user (which aren't allowed
  475. during private hours).
  476.  
  477. ┌───────────────────────┐
  478. │ Contacting the author │
  479. └───────────────────────┘
  480.  
  481.         You can't!
  482.  
  483.         Just  kidding.  I  read  the  RA_SUPPORT echo frequently. If you
  484. encounter any problems, you may leave  a message in the echo (but  don't
  485. let Bruce Bodger catch you! *Grin* ), or you can send a netmail to me at
  486. 6:600/403.0@FidoNet, or 45:620/101.0@VNet.
  487.  
  488.         If there are too much problems, then it either means my  program
  489. is buggy, or my DOCs are not  extensive enough ;-). In any case, I  will
  490. try to solve your  problems, but if there's  too much, priority goes  to
  491. those registered people.
  492.  
  493.         Also, if you  happen to find  any undocumented features,  please
  494. let me know too! ;-)  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.               PRIVATE HOURS v3.05 Documentation       Page 8
  509.  
  510. ┌─────────┐
  511. │ History │
  512. └─────────┘
  513.  
  514.         1.00ß   First draft program. Very simplistic in design, checks
  515.                 only the name and the group field.
  516.  
  517.         1.10ß   Added support Password checking
  518.  
  519.         1.11ß   Added VoicePhone checking
  520.  
  521.         1.20ß   Added logging activities to logfile, and added an
  522.                 errorlogfile for errors.
  523.  
  524.         1.25ß   Fixed my oversight at not disallowing ";" in name
  525.                 inputs, plus adding support for up to 3 names in the
  526.                 name input field.
  527.  
  528.         1.30ß   Added an option to let 'non-members' of Private Hours to
  529.                 leave the Sysop a message which is logged to the RA
  530.                 logfile. Not implemented in v2.0
  531.  
  532.         2.00    First public release of PRIVATE HOURS. Major re-coding
  533.                 of the program as well as cosmetic changes. Re-coding is
  534.                 necessary as I have to make the program as generic as
  535.                 possible. All beta versions are specific only to my
  536.                 system.
  537.  
  538.         2.50    Major bug-fix version.
  539.  
  540.         2.51    Added "ASK FOR BIRTHDATE" option (REGISTERED ONLY).
  541.                 Added Logging activity to OPUS format as well.
  542.                 Fixed user name automatically getting truncated to 3 
  543.                 words only ;-) (Can't blame me! Chinese people have ONLY 
  544.                 3-word names!)
  545.  
  546.  
  547. ┌─────────────┐
  548. │ Errorlevels │
  549. └─────────────┘
  550.  
  551.         PRIVATE HOURS will always exit with an ERRORLEVEL 0 if a problem
  552. crops up, to recycle  to the mailer, like  a carrier loss or  inactivity
  553. timeout.
  554.  
  555.         It will exit with the preserved errorlevels should the  problems
  556. be that of  a non-fatal nature.  This should let  the user logon  should
  557. anything go awry.
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.             PRIVATE HOURS v3.05 Documentation       Page 9
  565.